<?php
// +----------------------------------------------------------------------
// | 产品操作日志
// | 记录产品添加、编辑、审核、删除操作的日志信息
// | 操作数据库用的对象，引用了TP系统的M方法
// +----------------------------------------------------------------------
// | Author: hwf
// +----------------------------------------------------------------------

/**
 * 产品操作日志类
 * 
 * 采用数据库方式记录日志
 * 数据库对象使用了TP自带的M函数
 */
class ProductLog {

	private static $dao;			//日志模型
	public  static $map = array();	//存储数据 
	public  static $tem = array();	//暂存信息 
	private static $type_arr = array('entry', 'eidt', 'verify', 'delete');//记录操作类型 
	
	private function __construct(){}
	
	/**
	 * 初始化
	 */
	function _initialize(){
		self::$dao = M( "product_log" );
		self::$map = array(
			'ip'          => $_SERVER['REMOTE_ADDR'],
	    	'create_date' => time(),
	    	'uid'         => 12717 //临时数据TODO 
		);
	}
	
	/**
     * 记录日志
     */
    function record($message) {
    	self::$log[] = $message;
    }

    /**
     * 日志保存
     * 
     * $log  日志数据
     * $type 日志类型
     */
    function save($log, $type) {
    	//　输入信息简单的不为空检查
		$log_arr = $log ? $log : self::$tem;
    	if ( ! $log_arr || ! in_array($type, self::$type_arr) ) return false;

    	self::_initialize();
    	$data = self::$map; 
    	$data['type'] = $type;
    	if ( $type == 'entry' ) {// 录入操作时保存数据最大ID值
    		$product = M('product_register');
    		$max_id  = $product->max('id');
    		$data['product_ids'] = serialize($max_id);
    	} else {// 其他操作保存操作ID值
    		$temp_id = array();
    		if ( is_array(current($log_arr)) ) {
    			foreach ( $log_arr as $value ) {
    				$temp_id[] = $value['id'];
    			}
    		} else {
    			$temp_id = $log_arr['id'];
    		}
    		$data['product_ids'] = serialize($temp_id);
    	}
    	$data['content'] = serialize($log_arr);
    	self::$dao->add($data);
    }
}